iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0


SQL(Structured Query Language)是管理關聯式資料庫的標準語言,不僅軟體工程師常用,需要進行資料分析的工作也經常會用到SQL,可以想像為功能更強大、能處理更龐大資料的Excel(?)

儘管SQL的操作邏輯大致相通,但不同產品可能在語法上有些許差異,本文將介紹通用的SQL語法和概念。

SQL語句的基本類型

  1. 資料定義語言(DDL): 用於定義資料庫結構,如創建、修改、刪除資料庫物件。

    • 例如:CREATE、ALTER、DROP
  2. 資料操作語言(DML): 用於對資料進行新增、刪除、修改、查詢操作。

    • 例如:INSERT、UPDATE、DELETE、SELECT

SQL語句基本結構

  1. 操作關鍵字:指明要執行的操作類型,如SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER等。
  2. 目標:指定操作的對象,通常是資料表名稱或欄位名稱。
  3. 條件:使用WHERE子句來過濾符合特定條件的記錄。
  4. 附加選項:如ORDER BY(排序)、LIMIT(限制結果數量)、GROUP BY(分組)等。

主鍵

在關聯式資料庫中,主鍵是一個極為重要的概念,用於唯一標識資料表中的每一筆記錄。

主鍵 (Primary Key)

主鍵是一個或一組欄位,用於唯一標識資料表中的每一筆記錄。

特點:

  • 唯一性:主鍵的值在資料表中必須是獨一無二的。
  • 非空性:主鍵不能包含NULL值。
  • 穩定性:一旦設定,主鍵的值不應該經常變動。

實際案例

讓我們透過設計一個簡單的學生資料管理系統來深入了解SQL的應用。我們將創建一個資料表:學生資料表(Students)。

創建資料表 (DDL操作)

首先,我們來創建這個資料表,運用主鍵的概念:

CREATE TABLE Students (
    StudentID INT PRIMARY KEY AUTO_INCREMENT,
    Name VARCHAR(50) NOT NULL,
    Age INT,
    Class VARCHAR(20),
    Subject VARCHAR(50),
    Score INT
);

在這個例子中:

  • Students資料表的StudentID是主鍵,使用AUTO_INCREMENT自動增加。

CRUD操作 (DML操作)

現在我們來看看如何對這個資料表進行基本的CRUD(Create, Read, Update, Delete)操作。

新增資料(Create)

使用INSERT INTO語句來新增資料:

INSERT INTO Students (Name, Age, Class, Subject, Score) 
VALUES ('張小明', 15, '一年級', '數學', 85);

INSERT INTO Students (Name, Age, Class, Subject, Score)
VALUES ('李小華', 16, '二年級', '英文', 92);

查詢資料(Read)

使用SELECT語句來查詢資料:

SELECT Name, Age, Subject, Score
FROM Students 
WHERE Class = '一年級' 
ORDER BY Score DESC 
LIMIT 5;

-- 查詢特定學生的所有科目成績
SELECT Subject, Score
FROM Students
WHERE Name = '張小明';

* 代表所有,故可以這樣寫 SELECT * FROM Students

更新資料(Update)

使用UPDATE語句來更新資料:

UPDATE Students
SET Score = 88
WHERE Name = '張小明' AND Subject = '數學';

刪除資料(Delete)

使用DELETE語句來刪除資料:

DELETE FROM Students WHERE Name = '李小華' AND Subject = '英文';

結論

雖然不同的資料庫管理系統(如MySQL, PostgreSQL, Oracle等)可能在語法細節上有所不同,但基本概念是通用的,希望今天的你也有所收穫!


上一篇
資料傳遞標準II:同頻率的溝通很重要!
下一篇
非關聯式資料庫:基礎概念介紹
系列文
30天轉職馬拉松:從0到Offer的學習計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言